source("../../lib/som-utils.R")
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
source("../../lib/maps-utils.R")
Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
mpr.set_base_path_analysis()
model <- mpr.load_model("som-265.rds.xz")
summary(model)
SOM of size 5x5 with a hexagonal topology and a bubble neighbourhood function.
The number of data layers is 1.
Distance measure(s) used: sumofsquares.
Training data included: 94881 objects.
Mean distance to the closest unit in the map: 1.244.
plot(model, type="changes")
df <- mpr.load_data("datos_mes.csv.xz")
df
summary(df)
id_estacion fecha fecha_cnt tmax
Length:94881 Length:94881 Min. : 1.000 Min. :-53.0
Class :character Class :character 1st Qu.: 4.000 1st Qu.:148.0
Mode :character Mode :character Median : 6.000 Median :198.0
Mean : 6.497 Mean :200.2
3rd Qu.: 9.000 3rd Qu.:255.0
Max. :12.000 Max. :403.0
tmin precip nevada prof_nieve
Min. :-121.00 Min. : 0.00 Min. :0.000000 Min. : 0.000
1st Qu.: 53.00 1st Qu.: 3.00 1st Qu.:0.000000 1st Qu.: 0.000
Median : 98.00 Median : 10.00 Median :0.000000 Median : 0.000
Mean : 98.86 Mean : 16.25 Mean :0.000295 Mean : 0.467
3rd Qu.: 148.00 3rd Qu.: 22.00 3rd Qu.:0.000000 3rd Qu.: 0.000
Max. : 254.00 Max. :422.00 Max. :6.000000 Max. :1834.000
longitud latitud altitud
Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.:38.28 1st Qu.: -5.6417 1st Qu.: 42.0
Median :40.82 Median : -3.4500 Median : 247.0
Mean :39.66 Mean : -3.4350 Mean : 418.5
3rd Qu.:42.08 3rd Qu.: 0.4914 3rd Qu.: 656.0
Max. :43.57 Max. : 4.2156 Max. :2535.0
world <- ne_countries(scale = "medium", returnclass = "sf")
spain <- subset(world, admin == "Spain")
plot(model, type="count", shape = "straight", palette.name = mpr.degrade.bleu)
NĂºmero de elementos en cada celda:
nb <- table(model$unit.classif)
print(nb)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1189 2982 5609 6382 2479 5674 2678 4529 3284 2654 4194 3319 5349 1601 345 7790
17 18 19 20 21 22 23 24 25
1523 4312 2719 2839 4517 6144 3351 4280 5138
ComprobaciĂ³n de nodos vacĂos:
dim_model <- 5*5;
len_nb = length(nb);
empty_nodes <- dim_model != len_nb;
if (empty_nodes) {
print(paste("[Warning] Existen nodos vacĂos: ", len_nb, "/", dim_model))
}
plot(model, type="dist.neighbours", shape = "straight")
model_colnames = c("fecha_cnt", "tmax", "tmin", "precip", "longitud", "latitud", "altitud")
model_ncol = length(model_colnames)
plot(model, shape = "straight")
par(mfrow=c(3,4))
for (j in 1:model_ncol) {
plot(model, type="property", property=getCodes(model,1)[,j],
palette.name=mpr.coolBlueHotRed,
main=model_colnames[j],
cex=0.5, shape = "straight")
}
if (!empty_nodes) {
cor <- apply(getCodes(model,1), 2, mpr.weighted.correlation, w=nb, som=model)
print(cor)
}
fecha_cnt tmax tmin precip longitud latitud
[1,] 0.008548866 -0.8371435 -0.8606582 0.32885726 0.5039490 0.3118434
[2,] 0.811412845 0.4281654 0.3297262 -0.06266837 0.2547577 0.1482065
altitud
[1,] 0.31464026
[2,] -0.05751936
RepresentaciĂ³n de cada variable en un mapa de factores:
if (!empty_nodes) {
par(mfrow=c(1,1))
plot(cor[1,], cor[2,], xlim=c(-1,1), ylim=c(-1,1), type="n")
lines(c(-1,1),c(0,0))
lines(c(0,0),c(-1,1))
text(cor[1,], cor[2,], labels=model_colnames, cex=0.75)
symbols(0,0,circles=1,inches=F,add=T)
}
Importancia de cada variable - varianza ponderada por el tamaño de la celda:
if (!empty_nodes) {
sigma2 <- sqrt(apply(getCodes(model,1),2,function(x,effectif)
{m<-sum(effectif*(x-weighted.mean(x,effectif))^2)/(sum(effectif)-1)},
effectif=nb))
print(sort(sigma2,decreasing=T))
}
longitud tmax altitud tmin latitud fecha_cnt precip
0.9448887 0.9222487 0.9186947 0.9140405 0.9113429 0.9042962 0.8446315
if (!empty_nodes) {
hac <- mpr.hac(model, nb)
}
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=3)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=3)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.0 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.0 1st Qu.:201.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.0 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.5 Mean :217.4 Mean :150.7 Mean : 6.856 Mean :0
3rd Qu.: 9.0 3rd Qu.:253.0 3rd Qu.:190.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.0 Max. :356.0 Max. :244.0 Max. :114.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.50 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03089 Mean :28.36 Mean :-16.05 Mean : 518.7
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.:147.0 1st Qu.: 50.00 1st Qu.: 3.00
Median : 6.000 Median :194.0 Median : 93.00 Median : 11.00
Mean : 6.493 Mean :199.1 Mean : 94.91 Mean : 16.45
3rd Qu.: 9.000 3rd Qu.:255.0 3rd Qu.: 141.00 3rd Qu.: 23.00
Max. :12.000 Max. :403.0 Max. : 254.00 Max. :128.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :28.48 Min. :-17.7550
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:38.99 1st Qu.: -4.8500
Median :0.000000 Median : 0.0000 Median :40.96 Median : -2.4831
Mean :0.000319 Mean : 0.4811 Mean :40.54 Mean : -2.4366
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:42.22 3rd Qu.: 0.4942
Max. :6.000000 Max. :1834.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 44.0
Median : 251.0
Mean : 410.5
3rd Qu.: 667.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : -8.0 Min. :-58.00 Min. :106.0 Min. :0
1st Qu.: 2.00 1st Qu.:112.0 1st Qu.: 48.00 1st Qu.:128.0 1st Qu.:0
Median :10.00 Median :133.0 Median : 71.00 Median :139.0 Median :0
Mean : 7.47 Mean :135.8 Mean : 71.68 Mean :151.4 Mean :0
3rd Qu.:11.00 3rd Qu.:158.0 3rd Qu.: 95.00 3rd Qu.:160.0 3rd Qu.:0
Max. :12.00 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:41.29 1st Qu.: -8.624 1st Qu.: 87.0
Median : 0.000 Median :42.38 Median : -8.411 Median : 261.0
Mean : 5.539 Mean :41.34 Mean : -6.249 Mean : 468.9
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -3.831 3rd Qu.: 370.0
Max. :892.000 Max. :43.57 Max. : 2.827 Max. :2400.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=4)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=4)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.0 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.0 1st Qu.:201.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.0 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.5 Mean :217.4 Mean :150.7 Mean : 6.856 Mean :0
3rd Qu.: 9.0 3rd Qu.:253.0 3rd Qu.:190.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.0 Max. :356.0 Max. :244.0 Max. :114.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.50 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03089 Mean :28.36 Mean :-16.05 Mean : 518.7
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53 Min. :-121.00 Min. : 0.00
1st Qu.: 2.000 1st Qu.:127 1st Qu.: 32.00 1st Qu.: 6.00
Median : 4.000 Median :161 Median : 64.00 Median : 14.00
Mean : 5.906 Mean :159 Mean : 62.22 Mean : 19.66
3rd Qu.:10.000 3rd Qu.:193 3rd Qu.: 93.00 3rd Qu.: 27.00
Max. :12.000 Max. :336 Max. : 219.00 Max. :128.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :28.48 Min. :-17.7550
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:38.99 1st Qu.: -4.8500
Median :0.000000 Median : 0.0000 Median :40.96 Median : -2.4831
Mean :0.000488 Mean : 0.7336 Mean :40.58 Mean : -2.4385
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:42.24 3rd Qu.: 0.4942
Max. :6.000000 Max. :1834.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 47.0
Median : 286.0
Mean : 451.9
3rd Qu.: 687.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 4.000 Min. :149.0 Min. : 49.0 Min. : 0.00 Min. :0
1st Qu.: 7.000 1st Qu.:247.0 1st Qu.:132.0 1st Qu.: 1.00 1st Qu.:0
Median : 8.000 Median :276.0 Median :156.0 Median : 6.00 Median :0
Mean : 7.605 Mean :275.2 Mean :156.9 Mean :10.37 Mean :0
3rd Qu.: 9.000 3rd Qu.:303.0 3rd Qu.:182.0 3rd Qu.:15.00 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :78.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :35.28 Min. :-8.6494 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-4.8500 1st Qu.: 43.0
Median : 0.00000 Median :40.93 Median :-2.4831 Median : 185.0
Mean : 0.00251 Mean :40.47 Mean :-2.4328 Mean : 331.9
3rd Qu.: 0.00000 3rd Qu.:42.08 3rd Qu.: 0.4942 3rd Qu.: 611.0
Max. :35.00000 Max. :43.57 Max. : 4.2156 Max. :1894.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : -8.0 Min. :-58.00 Min. :106.0 Min. :0
1st Qu.: 2.00 1st Qu.:112.0 1st Qu.: 48.00 1st Qu.:128.0 1st Qu.:0
Median :10.00 Median :133.0 Median : 71.00 Median :139.0 Median :0
Mean : 7.47 Mean :135.8 Mean : 71.68 Mean :151.4 Mean :0
3rd Qu.:11.00 3rd Qu.:158.0 3rd Qu.: 95.00 3rd Qu.:160.0 3rd Qu.:0
Max. :12.00 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:41.29 1st Qu.: -8.624 1st Qu.: 87.0
Median : 0.000 Median :42.38 Median : -8.411 Median : 261.0
Mean : 5.539 Mean :41.34 Mean : -6.249 Mean : 468.9
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -3.831 3rd Qu.: 370.0
Max. :892.000 Max. :43.57 Max. : 2.827 Max. :2400.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=5)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=5)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.0 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.0 1st Qu.:201.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.0 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.5 Mean :217.4 Mean :150.7 Mean : 6.856 Mean :0
3rd Qu.: 9.0 3rd Qu.:253.0 3rd Qu.:190.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.0 Max. :356.0 Max. :244.0 Max. :114.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.50 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03089 Mean :28.36 Mean :-16.05 Mean : 518.7
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 2.000 1st Qu.:127.0 1st Qu.: 27.00 1st Qu.: 5.00
Median : 3.000 Median :162.0 Median : 61.00 Median : 13.00
Mean : 3.265 Mean :158.7 Mean : 58.78 Mean : 16.19
3rd Qu.: 4.000 3rd Qu.:194.0 3rd Qu.: 90.00 3rd Qu.: 24.00
Max. :12.000 Max. :321.0 Max. : 191.00 Max. :126.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.000 Min. :35.28 Min. :-8.6494
1st Qu.:0.000000 1st Qu.: 0.000 1st Qu.:38.99 1st Qu.:-4.7667
Median :0.000000 Median : 0.000 Median :40.96 Median :-2.3308
Mean :0.000529 Mean : 1.138 Mean :40.51 Mean :-2.1760
3rd Qu.:0.000000 3rd Qu.: 0.000 3rd Qu.:42.12 3rd Qu.: 0.7106
Max. :6.000000 Max. :1834.000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 47.0
Median : 286.0
Mean : 483.1
3rd Qu.: 704.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 4.000 Min. :149.0 Min. : 49.0 Min. : 0.00 Min. :0
1st Qu.: 7.000 1st Qu.:247.0 1st Qu.:132.0 1st Qu.: 1.00 1st Qu.:0
Median : 8.000 Median :276.0 Median :156.0 Median : 6.00 Median :0
Mean : 7.605 Mean :275.2 Mean :156.9 Mean :10.37 Mean :0
3rd Qu.: 9.000 3rd Qu.:303.0 3rd Qu.:182.0 3rd Qu.:15.00 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :78.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :35.28 Min. :-8.6494 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-4.8500 1st Qu.: 43.0
Median : 0.00000 Median :40.93 Median :-2.4831 Median : 185.0
Mean : 0.00251 Mean :40.47 Mean :-2.4328 Mean : 331.9
3rd Qu.: 0.00000 3rd Qu.:42.08 3rd Qu.: 0.4942 3rd Qu.: 611.0
Max. :35.00000 Max. :43.57 Max. : 4.2156 Max. :1894.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.00 Min. : 8.0 Min. :-110 Min. : 0.00
1st Qu.:10.00 1st Qu.:126.0 1st Qu.: 40 1st Qu.: 7.00
Median :11.00 Median :159.0 Median : 70 Median : 17.00
Mean :10.33 Mean :159.5 Mean : 68 Mean : 25.48
3rd Qu.:12.00 3rd Qu.:192.0 3rd Qu.: 97 3rd Qu.: 37.00
Max. :12.00 Max. :336.0 Max. : 219 Max. :128.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :28.48 Min. :-17.7550
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:39.47 1st Qu.: -5.5975
Median :0.0000000 Median : 0.00000 Median :41.11 Median : -3.4503
Mean :0.0004196 Mean : 0.05585 Mean :40.69 Mean : -2.8785
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:42.36 3rd Qu.: 0.0714
Max. :3.0000000 Max. :59.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 58.0
Median : 286.0
Mean : 399.7
3rd Qu.: 667.0
Max. :1894.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : -8.0 Min. :-58.00 Min. :106.0 Min. :0
1st Qu.: 2.00 1st Qu.:112.0 1st Qu.: 48.00 1st Qu.:128.0 1st Qu.:0
Median :10.00 Median :133.0 Median : 71.00 Median :139.0 Median :0
Mean : 7.47 Mean :135.8 Mean : 71.68 Mean :151.4 Mean :0
3rd Qu.:11.00 3rd Qu.:158.0 3rd Qu.: 95.00 3rd Qu.:160.0 3rd Qu.:0
Max. :12.00 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:41.29 1st Qu.: -8.624 1st Qu.: 87.0
Median : 0.000 Median :42.38 Median : -8.411 Median : 261.0
Mean : 5.539 Mean :41.34 Mean : -6.249 Mean : 468.9
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -3.831 3rd Qu.: 370.0
Max. :892.000 Max. :43.57 Max. : 2.827 Max. :2400.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=6)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=6)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.0 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.0 1st Qu.:201.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.0 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.5 Mean :217.4 Mean :150.7 Mean : 6.856 Mean :0
3rd Qu.: 9.0 3rd Qu.:253.0 3rd Qu.:190.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.0 Max. :356.0 Max. :244.0 Max. :114.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.50 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03089 Mean :28.36 Mean :-16.05 Mean : 518.7
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. :1.000 Min. : -4.0 Min. :-89.00 Min. : 0.00
1st Qu.:2.000 1st Qu.:134.0 1st Qu.: 32.00 1st Qu.: 5.00
Median :3.000 Median :165.0 Median : 63.00 Median :12.00
Mean :3.035 Mean :165.1 Mean : 62.77 Mean :14.71
3rd Qu.:4.000 3rd Qu.:196.0 3rd Qu.: 92.00 3rd Qu.:22.00
Max. :7.000 Max. :321.0 Max. :191.00 Max. :69.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :35.28 Min. :-8.6494
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:38.88 1st Qu.:-4.8500
Median :0.000000 Median : 0.0000 Median :40.95 Median :-2.4544
Mean :0.000568 Mean : 0.0929 Mean :40.40 Mean :-2.3382
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:41.98 3rd Qu.: 0.4942
Max. :6.000000 Max. :117.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 43.3
Median : 247.0
Mean : 359.3
3rd Qu.: 639.0
Max. :1894.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.00 Min. :-53.00 Min. :-121.000 Min. : 0.00
1st Qu.: 3.00 1st Qu.: 27.00 1st Qu.: -35.000 1st Qu.: 20.00
Median : 6.00 Median : 66.00 Median : 0.000 Median : 32.00
Mean : 6.37 Mean : 72.62 Mean : 4.922 Mean : 36.18
3rd Qu.:10.00 3rd Qu.:117.00 3rd Qu.: 45.000 3rd Qu.: 48.00
Max. :12.00 Max. :218.00 Max. : 128.000 Max. :126.00
nevada prof_nieve longitud latitud
Min. :0 Min. : 0.00 Min. :40.78 Min. :-4.01030
1st Qu.:0 1st Qu.: 0.00 1st Qu.:41.77 1st Qu.: 0.72920
Median :0 Median : 0.00 Median :42.47 Median : 0.98440
Mean :0 Mean : 15.25 Mean :42.05 Mean : 0.01392
3rd Qu.:0 3rd Qu.: 0.00 3rd Qu.:42.64 3rd Qu.: 1.52420
Max. :0 Max. :1834.00 Max. :42.77 Max. : 2.43780
altitud
Min. :1167
1st Qu.:1894
Median :2230
Mean :2155
3rd Qu.:2400
Max. :2535
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 4.000 Min. :149.0 Min. : 49.0 Min. : 0.00 Min. :0
1st Qu.: 7.000 1st Qu.:247.0 1st Qu.:132.0 1st Qu.: 1.00 1st Qu.:0
Median : 8.000 Median :276.0 Median :156.0 Median : 6.00 Median :0
Mean : 7.605 Mean :275.2 Mean :156.9 Mean :10.37 Mean :0
3rd Qu.: 9.000 3rd Qu.:303.0 3rd Qu.:182.0 3rd Qu.:15.00 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :78.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :35.28 Min. :-8.6494 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-4.8500 1st Qu.: 43.0
Median : 0.00000 Median :40.93 Median :-2.4831 Median : 185.0
Mean : 0.00251 Mean :40.47 Mean :-2.4328 Mean : 331.9
3rd Qu.: 0.00000 3rd Qu.:42.08 3rd Qu.: 0.4942 3rd Qu.: 611.0
Max. :35.00000 Max. :43.57 Max. : 4.2156 Max. :1894.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip
Min. : 1.00 Min. : 8.0 Min. :-110 Min. : 0.00
1st Qu.:10.00 1st Qu.:126.0 1st Qu.: 40 1st Qu.: 7.00
Median :11.00 Median :159.0 Median : 70 Median : 17.00
Mean :10.33 Mean :159.5 Mean : 68 Mean : 25.48
3rd Qu.:12.00 3rd Qu.:192.0 3rd Qu.: 97 3rd Qu.: 37.00
Max. :12.00 Max. :336.0 Max. : 219 Max. :128.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :28.48 Min. :-17.7550
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:39.47 1st Qu.: -5.5975
Median :0.0000000 Median : 0.00000 Median :41.11 Median : -3.4503
Mean :0.0004196 Mean : 0.05585 Mean :40.69 Mean : -2.8785
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:42.36 3rd Qu.: 0.0714
Max. :3.0000000 Max. :59.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 58.0
Median : 286.0
Mean : 399.7
3rd Qu.: 667.0
Max. :1894.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : -8.0 Min. :-58.00 Min. :106.0 Min. :0
1st Qu.: 2.00 1st Qu.:112.0 1st Qu.: 48.00 1st Qu.:128.0 1st Qu.:0
Median :10.00 Median :133.0 Median : 71.00 Median :139.0 Median :0
Mean : 7.47 Mean :135.8 Mean : 71.68 Mean :151.4 Mean :0
3rd Qu.:11.00 3rd Qu.:158.0 3rd Qu.: 95.00 3rd Qu.:160.0 3rd Qu.:0
Max. :12.00 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:41.29 1st Qu.: -8.624 1st Qu.: 87.0
Median : 0.000 Median :42.38 Median : -8.411 Median : 261.0
Mean : 5.539 Mean :41.34 Mean : -6.249 Mean : 468.9
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -3.831 3rd Qu.: 370.0
Max. :892.000 Max. :43.57 Max. : 2.827 Max. :2400.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=8)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=8)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.00 Min. : 0.00 Min. :0
1st Qu.: 4.000 1st Qu.: 94.0 1st Qu.: 23.00 1st Qu.: 0.00 1st Qu.:0
Median : 7.000 Median :129.0 Median : 51.00 Median : 3.00 Median :0
Mean : 6.585 Mean :138.4 Mean : 60.83 Mean : 10.29 Mean :0
3rd Qu.:10.000 3rd Qu.:183.0 3rd Qu.: 98.00 3rd Qu.: 13.00 3rd Qu.:0
Max. :12.000 Max. :253.0 Max. :159.00 Max. :114.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.31 Min. :-16.5 Min. :2371
1st Qu.: 0.0000 1st Qu.:28.31 1st Qu.:-16.5 1st Qu.:2371
Median : 0.0000 Median :28.31 Median :-16.5 Median :2371
Mean : 0.1766 Mean :28.31 Mean :-16.5 Mean :2371
3rd Qu.: 0.0000 3rd Qu.:28.31 3rd Qu.:-16.5 3rd Qu.:2371
Max. :46.0000 Max. :28.31 Max. :-16.5 Max. :2371
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. :1.000 Min. : -4.0 Min. :-89.00 Min. : 0.00
1st Qu.:2.000 1st Qu.:134.0 1st Qu.: 32.00 1st Qu.: 5.00
Median :3.000 Median :165.0 Median : 63.00 Median :12.00
Mean :3.035 Mean :165.1 Mean : 62.77 Mean :14.71
3rd Qu.:4.000 3rd Qu.:196.0 3rd Qu.: 92.00 3rd Qu.:22.00
Max. :7.000 Max. :321.0 Max. :191.00 Max. :69.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :35.28 Min. :-8.6494
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:38.88 1st Qu.:-4.8500
Median :0.000000 Median : 0.0000 Median :40.95 Median :-2.4544
Mean :0.000568 Mean : 0.0929 Mean :40.40 Mean :-2.3382
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:41.98 3rd Qu.: 0.4942
Max. :6.000000 Max. :117.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 43.3
Median : 247.0
Mean : 359.3
3rd Qu.: 639.0
Max. :1894.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.00 Min. :-53.00 Min. :-121.000 Min. : 0.00
1st Qu.: 3.00 1st Qu.: 27.00 1st Qu.: -35.000 1st Qu.: 20.00
Median : 6.00 Median : 66.00 Median : 0.000 Median : 32.00
Mean : 6.37 Mean : 72.62 Mean : 4.922 Mean : 36.18
3rd Qu.:10.00 3rd Qu.:117.00 3rd Qu.: 45.000 3rd Qu.: 48.00
Max. :12.00 Max. :218.00 Max. : 128.000 Max. :126.00
nevada prof_nieve longitud latitud
Min. :0 Min. : 0.00 Min. :40.78 Min. :-4.01030
1st Qu.:0 1st Qu.: 0.00 1st Qu.:41.77 1st Qu.: 0.72920
Median :0 Median : 0.00 Median :42.47 Median : 0.98440
Mean :0 Mean : 15.25 Mean :42.05 Mean : 0.01392
3rd Qu.:0 3rd Qu.: 0.00 3rd Qu.:42.64 3rd Qu.: 1.52420
Max. :0 Max. :1834.00 Max. :42.77 Max. : 2.43780
altitud
Min. :1167
1st Qu.:1894
Median :2230
Mean :2155
3rd Qu.:2400
Max. :2535
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 87 Min. : 64.0 Min. : 0.000 Min. :0
1st Qu.: 3.000 1st Qu.:212 1st Qu.:150.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.000 Median :233 Median :168.0 Median : 1.000 Median :0
Mean : 6.482 Mean :234 Mean :169.5 Mean : 6.136 Mean :0
3rd Qu.: 9.000 3rd Qu.:259 3rd Qu.:196.0 3rd Qu.: 7.000 3rd Qu.:0
Max. :12.000 Max. :356 Max. :244.0 Max. :89.000 Max. :0
prof_nieve longitud latitud altitud
Min. :0.0000000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.:0.0000000 1st Qu.:28.05 1st Qu.:-16.56 1st Qu.: 25.0
Median :0.0000000 Median :28.46 Median :-16.26 Median : 33.0
Mean :0.0003525 Mean :28.38 Mean :-15.95 Mean :130.5
3rd Qu.:0.0000000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 64.0
Max. :2.0000000 Max. :28.95 Max. :-13.60 Max. :632.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 4.000 Min. :149.0 Min. : 49.0 Min. : 0.00 Min. :0
1st Qu.: 7.000 1st Qu.:247.0 1st Qu.:132.0 1st Qu.: 1.00 1st Qu.:0
Median : 8.000 Median :276.0 Median :156.0 Median : 6.00 Median :0
Mean : 7.605 Mean :275.2 Mean :156.9 Mean :10.37 Mean :0
3rd Qu.: 9.000 3rd Qu.:303.0 3rd Qu.:182.0 3rd Qu.:15.00 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :78.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :35.28 Min. :-8.6494 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-4.8500 1st Qu.: 43.0
Median : 0.00000 Median :40.93 Median :-2.4831 Median : 185.0
Mean : 0.00251 Mean :40.47 Mean :-2.4328 Mean : 331.9
3rd Qu.: 0.00000 3rd Qu.:42.08 3rd Qu.: 0.4942 3rd Qu.: 611.0
Max. :35.00000 Max. :43.57 Max. : 4.2156 Max. :1894.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 57.0 Min. :-25.0 Min. : 5.00 Min. :0
1st Qu.: 5.000 1st Qu.:128.0 1st Qu.: 57.0 1st Qu.: 43.00 1st Qu.:0
Median :11.000 Median :149.0 Median : 76.0 Median : 57.00 Median :0
Mean : 8.602 Mean :153.2 Mean : 79.2 Mean : 59.13 Mean :0
3rd Qu.:11.000 3rd Qu.:175.0 3rd Qu.: 99.0 3rd Qu.: 73.00 3rd Qu.:0
Max. :12.000 Max. :336.0 Max. :219.0 Max. :128.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :28.48 Min. :-17.755 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:41.98 1st Qu.: -7.860 1st Qu.: 42.0
Median : 0.00000 Median :42.89 Median : -5.598 Median : 108.0
Mean : 0.06743 Mean :42.04 Mean : -4.767 Mean : 214.7
3rd Qu.: 0.00000 3rd Qu.:43.36 3rd Qu.: -2.654 3rd Qu.: 370.0
Max. :35.00000 Max. :43.57 Max. : 4.216 Max. :1572.0
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : -8.0 Min. :-58.00 Min. :106.0 Min. :0
1st Qu.: 2.00 1st Qu.:112.0 1st Qu.: 48.00 1st Qu.:128.0 1st Qu.:0
Median :10.00 Median :133.0 Median : 71.00 Median :139.0 Median :0
Mean : 7.47 Mean :135.8 Mean : 71.68 Mean :151.4 Mean :0
3rd Qu.:11.00 3rd Qu.:158.0 3rd Qu.: 95.00 3rd Qu.:160.0 3rd Qu.:0
Max. :12.00 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:41.29 1st Qu.: -8.624 1st Qu.: 87.0
Median : 0.000 Median :42.38 Median : -8.411 Median : 261.0
Mean : 5.539 Mean :41.34 Mean : -6.249 Mean : 468.9
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -3.831 3rd Qu.: 370.0
Max. :892.000 Max. :43.57 Max. : 2.827 Max. :2400.0
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip
Min. : 6.00 Min. : 8.0 Min. :-110.0 Min. : 0.00
1st Qu.:10.00 1st Qu.:125.0 1st Qu.: 31.0 1st Qu.: 4.00
Median :11.00 Median :166.0 Median : 66.0 Median :11.00
Mean :10.98 Mean :161.8 Mean : 63.8 Mean :12.89
3rd Qu.:12.00 3rd Qu.:198.0 3rd Qu.: 96.0 3rd Qu.:19.00
Max. :12.00 Max. :305.0 Max. : 189.0 Max. :55.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-4.4881
Median :0.0000000 Median : 0.00000 Median :40.78 Median :-2.3567
Mean :0.0005766 Mean : 0.05151 Mean :40.19 Mean :-2.1716
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:41.67 3rd Qu.: 0.4942
Max. :3.0000000 Max. :59.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 71.0
Median : 510.0
Mean : 468.9
3rd Qu.: 779.0
Max. :1894.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=10)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=10)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
df.cluster09 <- subset(df, cluster==9)
df.cluster10 <- subset(df, cluster==10)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster09 <- select(df.cluster09, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster10 <- select(df.cluster10, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.00 Min. : 0.00 Min. :0
1st Qu.: 4.000 1st Qu.: 94.0 1st Qu.: 23.00 1st Qu.: 0.00 1st Qu.:0
Median : 7.000 Median :129.0 Median : 51.00 Median : 3.00 Median :0
Mean : 6.585 Mean :138.4 Mean : 60.83 Mean : 10.29 Mean :0
3rd Qu.:10.000 3rd Qu.:183.0 3rd Qu.: 98.00 3rd Qu.: 13.00 3rd Qu.:0
Max. :12.000 Max. :253.0 Max. :159.00 Max. :114.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.31 Min. :-16.5 Min. :2371
1st Qu.: 0.0000 1st Qu.:28.31 1st Qu.:-16.5 1st Qu.:2371
Median : 0.0000 Median :28.31 Median :-16.5 Median :2371
Mean : 0.1766 Mean :28.31 Mean :-16.5 Mean :2371
3rd Qu.: 0.0000 3rd Qu.:28.31 3rd Qu.:-16.5 3rd Qu.:2371
Max. :46.0000 Max. :28.31 Max. :-16.5 Max. :2371
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. :1.000 Min. : 58.0 Min. :-41 Min. : 0.0
1st Qu.:2.000 1st Qu.:161.0 1st Qu.: 59 1st Qu.: 3.0
Median :3.000 Median :186.0 Median : 87 Median : 8.0
Mean :3.159 Mean :189.4 Mean : 87 Mean :10.7
3rd Qu.:4.000 3rd Qu.:218.0 3rd Qu.:115 3rd Qu.:16.0
Max. :7.000 Max. :321.0 Max. :191 Max. :55.0
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :35.28 Min. :-6.9492
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:37.26 1st Qu.:-4.8458
Median :0.0000000 Median : 0.00000 Median :38.88 Median : 0.0714
Mean :0.0002532 Mean : 0.02538 Mean :39.16 Mean :-1.3112
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:41.29 3rd Qu.: 1.1678
Max. :2.0000000 Max. :40.00000 Max. :43.49 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 19.0
Median : 53.0
Mean :109.2
3rd Qu.:143.0
Max. :816.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. :1.000 Min. : -4.0 Min. :-89.0 Min. : 0.00
1st Qu.:2.000 1st Qu.:112.0 1st Qu.: 14.0 1st Qu.: 7.00
Median :3.000 Median :145.0 Median : 42.0 Median :16.00
Mean :2.923 Mean :143.3 Mean : 41.1 Mean :18.29
3rd Qu.:4.000 3rd Qu.:174.0 3rd Qu.: 69.0 3rd Qu.:27.00
Max. :6.000 Max. :256.0 Max. :131.0 Max. :69.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :37.13 Min. :-8.649
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:40.48 1st Qu.:-4.850
Median :0.000000 Median : 0.0000 Median :41.65 Median :-3.678
Mean :0.000849 Mean : 0.1533 Mean :41.50 Mean :-3.256
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:42.59 3rd Qu.:-1.861
Max. :6.000000 Max. :117.0000 Max. :43.57 Max. : 4.216
altitud
Min. : 1
1st Qu.: 353
Median : 627
Mean : 583
3rd Qu.: 846
Max. :1894
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.00 Min. :-53.00 Min. :-121.000 Min. : 0.00
1st Qu.: 3.00 1st Qu.: 27.00 1st Qu.: -35.000 1st Qu.: 20.00
Median : 6.00 Median : 66.00 Median : 0.000 Median : 32.00
Mean : 6.37 Mean : 72.62 Mean : 4.922 Mean : 36.18
3rd Qu.:10.00 3rd Qu.:117.00 3rd Qu.: 45.000 3rd Qu.: 48.00
Max. :12.00 Max. :218.00 Max. : 128.000 Max. :126.00
nevada prof_nieve longitud latitud
Min. :0 Min. : 0.00 Min. :40.78 Min. :-4.01030
1st Qu.:0 1st Qu.: 0.00 1st Qu.:41.77 1st Qu.: 0.72920
Median :0 Median : 0.00 Median :42.47 Median : 0.98440
Mean :0 Mean : 15.25 Mean :42.05 Mean : 0.01392
3rd Qu.:0 3rd Qu.: 0.00 3rd Qu.:42.64 3rd Qu.: 1.52420
Max. :0 Max. :1834.00 Max. :42.77 Max. : 2.43780
altitud
Min. :1167
1st Qu.:1894
Median :2230
Mean :2155
3rd Qu.:2400
Max. :2535
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 87 Min. : 64.0 Min. : 0.000 Min. :0
1st Qu.: 3.000 1st Qu.:212 1st Qu.:150.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.000 Median :233 Median :168.0 Median : 1.000 Median :0
Mean : 6.482 Mean :234 Mean :169.5 Mean : 6.136 Mean :0
3rd Qu.: 9.000 3rd Qu.:259 3rd Qu.:196.0 3rd Qu.: 7.000 3rd Qu.:0
Max. :12.000 Max. :356 Max. :244.0 Max. :89.000 Max. :0
prof_nieve longitud latitud altitud
Min. :0.0000000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.:0.0000000 1st Qu.:28.05 1st Qu.:-16.56 1st Qu.: 25.0
Median :0.0000000 Median :28.46 Median :-16.26 Median : 33.0
Mean :0.0003525 Mean :28.38 Mean :-15.95 Mean :130.5
3rd Qu.:0.0000000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 64.0
Max. :2.0000000 Max. :28.95 Max. :-13.60 Max. :632.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. : 4.000 Min. :149.0 Min. : 49.0 Min. : 0.00 Min. :0
1st Qu.: 7.000 1st Qu.:247.0 1st Qu.:132.0 1st Qu.: 1.00 1st Qu.:0
Median : 8.000 Median :276.0 Median :156.0 Median : 6.00 Median :0
Mean : 7.605 Mean :275.2 Mean :156.9 Mean :10.37 Mean :0
3rd Qu.: 9.000 3rd Qu.:303.0 3rd Qu.:182.0 3rd Qu.:15.00 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :78.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :35.28 Min. :-8.6494 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-4.8500 1st Qu.: 43.0
Median : 0.00000 Median :40.93 Median :-2.4831 Median : 185.0
Mean : 0.00251 Mean :40.47 Mean :-2.4328 Mean : 331.9
3rd Qu.: 0.00000 3rd Qu.:42.08 3rd Qu.: 0.4942 3rd Qu.: 611.0
Max. :35.00000 Max. :43.57 Max. : 4.2156 Max. :1894.0
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip nevada
Min. :1.000 Min. : 57.0 Min. :-22.00 Min. : 46.00 Min. :0
1st Qu.:1.000 1st Qu.:120.0 1st Qu.: 50.00 1st Qu.: 58.00 1st Qu.:0
Median :2.000 Median :139.0 Median : 67.00 Median : 66.00 Median :0
Mean :2.488 Mean :139.8 Mean : 66.77 Mean : 70.21 Mean :0
3rd Qu.:4.000 3rd Qu.:158.0 3rd Qu.: 83.00 3rd Qu.: 79.00 3rd Qu.:0
Max. :6.000 Max. :245.0 Max. :150.00 Max. :120.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.48 Min. :-17.755 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:42.24 1st Qu.: -8.411 1st Qu.: 34.0
Median : 0.0000 Median :42.89 Median : -5.698 Median : 108.0
Mean : 0.1012 Mean :42.08 Mean : -5.262 Mean : 180.1
3rd Qu.: 0.0000 3rd Qu.:43.36 3rd Qu.: -2.906 3rd Qu.: 261.0
Max. :35.0000 Max. :43.57 Max. : 3.182 Max. :1572.0
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : -8.0 Min. :-58.00 Min. :106.0 Min. :0
1st Qu.: 2.00 1st Qu.:112.0 1st Qu.: 48.00 1st Qu.:128.0 1st Qu.:0
Median :10.00 Median :133.0 Median : 71.00 Median :139.0 Median :0
Mean : 7.47 Mean :135.8 Mean : 71.68 Mean :151.4 Mean :0
3rd Qu.:11.00 3rd Qu.:158.0 3rd Qu.: 95.00 3rd Qu.:160.0 3rd Qu.:0
Max. :12.00 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.000 1st Qu.:41.29 1st Qu.: -8.624 1st Qu.: 87.0
Median : 0.000 Median :42.38 Median : -8.411 Median : 261.0
Mean : 5.539 Mean :41.34 Mean : -6.249 Mean : 468.9
3rd Qu.: 0.000 3rd Qu.:42.89 3rd Qu.: -3.831 3rd Qu.: 370.0
Max. :892.000 Max. :43.57 Max. : 2.827 Max. :2400.0
if (!empty_nodes) summary(df.cluster09)
fecha_cnt tmax tmin precip nevada
Min. : 5.00 Min. : 59.0 Min. :-25.0 Min. : 5.00 Min. :0
1st Qu.:10.00 1st Qu.:133.0 1st Qu.: 60.0 1st Qu.: 38.00 1st Qu.:0
Median :11.00 Median :154.0 Median : 81.0 Median : 51.00 Median :0
Mean :10.91 Mean :158.2 Mean : 83.9 Mean : 54.95 Mean :0
3rd Qu.:12.00 3rd Qu.:181.0 3rd Qu.:105.8 3rd Qu.: 69.00 3rd Qu.:0
Max. :12.00 Max. :336.0 Max. :219.0 Max. :128.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :28.48 Min. :-17.755 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:41.67 1st Qu.: -7.456 1st Qu.: 42.0
Median : 0.00000 Median :42.89 Median : -4.846 Median : 127.0
Mean : 0.05469 Mean :42.03 Mean : -4.580 Mean : 227.7
3rd Qu.: 0.00000 3rd Qu.:43.36 3rd Qu.: -2.039 3rd Qu.: 370.0
Max. :27.00000 Max. :43.57 Max. : 4.216 Max. :1405.0
if (!empty_nodes) summary(df.cluster10)
fecha_cnt tmax tmin precip
Min. : 6.00 Min. : 8.0 Min. :-110.0 Min. : 0.00
1st Qu.:10.00 1st Qu.:125.0 1st Qu.: 31.0 1st Qu.: 4.00
Median :11.00 Median :166.0 Median : 66.0 Median :11.00
Mean :10.98 Mean :161.8 Mean : 63.8 Mean :12.89
3rd Qu.:12.00 3rd Qu.:198.0 3rd Qu.: 96.0 3rd Qu.:19.00
Max. :12.00 Max. :305.0 Max. : 189.0 Max. :55.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-4.4881
Median :0.0000000 Median : 0.00000 Median :40.78 Median :-2.3567
Mean :0.0005766 Mean : 0.05151 Mean :40.19 Mean :-2.1716
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:41.67 3rd Qu.: 0.4942
Max. :3.0000000 Max. :59.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 71.0
Median : 510.0
Mean : 468.9
3rd Qu.: 779.0
Max. :1894.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1], dim(df.cluster09)[1], dim(df.cluster10)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08", "cluster09", "cluster10"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.hist(df.cluster09)
if (!empty_nodes) mpr.hist(df.cluster10)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster09)
if (!empty_nodes) mpr.boxplot(df.cluster10)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
df.cluster09.grouped <- mpr.group_by_geo(df.cluster09)
df.cluster10.grouped <- mpr.group_by_geo(df.cluster10)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster09.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster10.grouped)